home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / VISCAFE.BIN / TextArea.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-06-19  |  4.8 KB  |  191 lines

  1. package symantec.itools.db.awt;
  2.  
  3. import java.awt.Event;
  4. import java.awt.TextComponent;
  5. import java.io.IOException;
  6. import symantec.itools.db.pro.ProjBinder;
  7. import symantec.itools.db.pro.ProjLink;
  8. import symantec.itools.db.pro.RelationView;
  9. import symantec.itools.db.pro.RelationViewMetaData;
  10. import symjava.sql.SQLException;
  11.  
  12. public class TextArea extends java.awt.TextArea implements ProjLink {
  13.    private ProjBinder m_ProjBinder;
  14.    private boolean m_DynamicUpdate = false;
  15.    private boolean m_DynamicUpdateOverride = true;
  16.    private boolean m_BinderDetermines = true;
  17.    private String m_BinderData = new String();
  18.    private String m_ScreenData = new String();
  19.    private int m_treatBlankAs;
  20.  
  21.    public TextArea() {
  22.    }
  23.  
  24.    public TextArea(int var1, int var2) {
  25.       super(var1, var2);
  26.    }
  27.  
  28.    public TextArea(String var1) {
  29.       super(var1);
  30.    }
  31.  
  32.    public TextArea(String var1, int var2, int var3) {
  33.       super(var1, var2, var3);
  34.    }
  35.  
  36.    public void init(ProjBinder var1) {
  37.       this.m_ProjBinder = var1;
  38.       this.setEditable(this.m_ProjBinder);
  39.    }
  40.  
  41.    public void setTreatBlankAs(String var1) {
  42.       if ((new String(var1)).toUpperCase().equals("DEFAULT")) {
  43.          this.m_treatBlankAs = 0;
  44.       } else if ((new String(var1)).toUpperCase().equals("NULL")) {
  45.          this.m_treatBlankAs = 1;
  46.       } else {
  47.          if ((new String(var1)).toUpperCase().equals("BLANK")) {
  48.             this.m_treatBlankAs = 2;
  49.          }
  50.  
  51.       }
  52.    }
  53.  
  54.    public void setBinding(RelationView var1, String var2) {
  55.       int var3 = 0;
  56.       int var4 = 0;
  57.  
  58.       try {
  59.          RelationViewMetaData var5 = var1.getMetaData();
  60.          var3 = var1.findProjByName(var2);
  61.          var4 = var5.getColumnType(var3);
  62.          if (var4 == 91 || var4 == 92 || var4 == 93) {
  63.             this.m_DynamicUpdateOverride = false;
  64.          }
  65.  
  66.          var1.bindProj(var3, this);
  67.       } catch (SQLException var6) {
  68.          this.raiseException("SQLException from setBinding: " + ((Throwable)var6).getMessage());
  69.       }
  70.    }
  71.  
  72.    public void setDynamicUpdate(boolean var1) {
  73.       this.m_DynamicUpdate = var1;
  74.    }
  75.  
  76.    public void notifyDataChange(ProjBinder var1) {
  77.       if (var1 != null) {
  78.          this.m_ProjBinder = var1;
  79.  
  80.          try {
  81.             if (var1.getRelationView().getCurrentRecordState() != 105) {
  82.                if (var1.isReadable() && !var1.isNull()) {
  83.                   this.m_BinderData = var1.getStringValue();
  84.                } else {
  85.                   this.m_BinderData = "";
  86.                }
  87.             } else {
  88.                this.m_BinderData = "";
  89.             }
  90.          } catch (SQLException var3) {
  91.             this.raiseException("SQLException from TextArea.notifyDataChange: " + ((Throwable)var3).getMessage());
  92.          } catch (IOException var4) {
  93.             this.raiseException("IOException from TextArea.notifyDataChange: " + ((Throwable)var4).getMessage());
  94.          }
  95.  
  96.          if (this.m_BinderData == null) {
  97.             this.m_BinderData = new String();
  98.          }
  99.  
  100.          this.m_ScreenData = ((TextComponent)this).getText();
  101.          if (!this.m_BinderData.equals(this.m_ScreenData)) {
  102.             this.m_ScreenData = this.m_BinderData;
  103.             ((TextComponent)this).setText(this.m_ScreenData);
  104.          }
  105.  
  106.          if (this.m_BinderDetermines) {
  107.             this.setEditable(this.m_ProjBinder);
  108.          }
  109.  
  110.       }
  111.    }
  112.  
  113.    public boolean lostFocus(Event var1, Object var2) {
  114.       try {
  115.          this.notifySetData(this.m_ProjBinder);
  116.       } catch (SQLException var4) {
  117.          this.raiseException("SQLException from TextArea.notifySetData: " + ((Throwable)var4).getMessage());
  118.       }
  119.  
  120.       return super.lostFocus(var1, var2);
  121.    }
  122.  
  123.    boolean notifyInputChanged(String var1) {
  124.       if (!this.m_ScreenData.equals(var1)) {
  125.          this.m_ScreenData = var1;
  126.       }
  127.  
  128.       try {
  129.          if (!this.m_BinderData.equals(this.m_ScreenData) && this.m_ProjBinder.getRelationView().getCurrentRecordState() != 105 && this.m_ProjBinder.getRelationView().getCurrentRecordState() != 103 && this.m_ProjBinder.getRelationView().getCurrentRecordState() != 104) {
  130.             this.m_BinderData = this.m_ScreenData;
  131.  
  132.             try {
  133.                if (this.m_ProjBinder != null && this.m_ProjBinder.isWritable()) {
  134.                   this.m_ProjBinder.setValueFromString(this.m_ScreenData, 0, this.m_treatBlankAs);
  135.                }
  136.             } catch (IOException var3) {
  137.                this.raiseException("IOException from TextArea.notifyInputChange.setString: " + ((Throwable)var3).getMessage());
  138.                return false;
  139.             }
  140.          }
  141.  
  142.          return true;
  143.       } catch (SQLException var4) {
  144.          this.raiseException("SQLException from TextField.notifyInputChange: " + ((Throwable)var4).getMessage());
  145.          return false;
  146.       }
  147.    }
  148.  
  149.    public boolean notifySetData(ProjBinder var1) throws SQLException {
  150.       return this.notifyInputChanged(((TextComponent)this).getText());
  151.    }
  152.  
  153.    public boolean handleEvent(Event var1) {
  154.       if (this.m_DynamicUpdate && this.m_DynamicUpdateOverride) {
  155.          try {
  156.             this.notifySetData(this.m_ProjBinder);
  157.          } catch (SQLException var3) {
  158.             this.raiseException("SQLException from TextArea.notifySetData: " + ((Throwable)var3).getMessage());
  159.          }
  160.       }
  161.  
  162.       return super.handleEvent(var1);
  163.    }
  164.  
  165.    void setEditable(ProjBinder var1) {
  166.       boolean var2 = false;
  167.  
  168.       try {
  169.          if (var1 != null) {
  170.             RelationView var3 = var1.getRelationView();
  171.             if (var3 != null && var3.getCurrentRecordState() != 105) {
  172.                var2 = var1.isWritable();
  173.             }
  174.          }
  175.       } catch (SQLException var4) {
  176.          this.raiseException("SQLException from setEditable: " + ((Throwable)var4).getMessage());
  177.       }
  178.  
  179.       super.setEditable(var2);
  180.    }
  181.  
  182.    public void setEditable(boolean var1) {
  183.       this.m_BinderDetermines = var1;
  184.       super.setEditable(var1);
  185.    }
  186.  
  187.    void raiseException(String var1) {
  188.       System.out.println(var1);
  189.    }
  190. }
  191.